package 网络编程TCP通信.综合案例_即时通信_群聊;

import 网络编程TCP通信.用代码实现与多个客户端同时通信.ServerReaderThread;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class Server {
    public static List<Socket> onLineSocket = new ArrayList<>();
    public static void main(String[] args) throws Exception {

        System.out.println("---------服务端启动成功----------");
        // 目标: 完成TCP通信快速入门-服务端开发: 实现一发一收

        // 1. 创建ServerSocket的对象, 同时为服务端注册端口
        ServerSocket serverSocket = new ServerSocket(8888);

        while (true) {
            // 2. 使用serverSocket对象, 调用一个accept方法, 等待客户端的连接请求
            Socket socket = serverSocket.accept();
            onLineSocket.add(socket);

            System.out.println(socket.getRemoteSocketAddress() + "上线了");

            // 3. 把这个客户端对应的socket通信管道, 交给一个独立的线程负责处理.
            new ServerReaderThread(socket).start();
        }

    }
}
